<html>
<head><meta charset="utf-8"><title>Design meeting: try, oh my! · t-lang · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/index.html">t-lang</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html">Design meeting: try, oh my!</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="196201911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196201911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196201911">(May 04 2020 at 16:03)</a>:</h4>
<p>Happening now...</p>



<a name="196202017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196202017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196202017">(May 04 2020 at 16:04)</a>:</h4>
<p><a href="https://paper.dropbox.com/doc/Try-oh-my--AzWHHy50~p4DUrxHGZYxmIw8Ag-yRDursGetP5YcDdOTSebo" title="https://paper.dropbox.com/doc/Try-oh-my--AzWHHy50~p4DUrxHGZYxmIw8Ag-yRDursGetP5YcDdOTSebo">paper document</a></p>



<a name="196202283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196202283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196202283">(May 04 2020 at 16:06)</a>:</h4>
<p><span class="user-mention" data-user-id="239881">@Josh Triplett</span> <span aria-label="point up" class="emoji emoji-1f446" role="img" title="point up">:point_up:</span></p>



<a name="196203262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196203262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196203262">(May 04 2020 at 16:12)</a>:</h4>
<p>It seems to be a different Zoom link from the triage meeting Zoom link.</p>



<a name="196209149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196209149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196209149">(May 04 2020 at 16:55)</a>:</h4>
<p>I've added a couple comments, but I'm not on the call -- sorry if that's distracting</p>



<a name="196210174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210174">(May 04 2020 at 17:02)</a>:</h4>
<p>I appreciate folks adding comments, I like to read them over later</p>



<a name="196210181"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210181" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210181">(May 04 2020 at 17:02)</a>:</h4>
<p>so I wasn't able to follow every conversation because (perhaps ironically) I was trying to continue taking notes at the top</p>



<a name="196210198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210198">(May 04 2020 at 17:02)</a>:</h4>
<p>heh :)</p>



<a name="196210199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210199">(May 04 2020 at 17:02)</a>:</h4>
<p>but I did have one Question</p>



<a name="196210207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210207">(May 04 2020 at 17:03)</a>:</h4>
<p>I was wondering how you fared with that...</p>



<a name="196210235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210235">(May 04 2020 at 17:03)</a>:</h4>
<p>did josh respond to niko's statement that this isn't all that dissimilar from exceptions?</p>



<a name="196210330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210330">(May 04 2020 at 17:04)</a>:</h4>
<p>I would like to better understand that. I <em>do</em> understand the notion that we want to avoid association with the <em>expensive</em> exceptions as implemented elsewhere (namely those that capture stack trace)</p>



<a name="196210362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210362">(May 04 2020 at 17:04)</a>:</h4>
<p>and if that's the heart of josh's concern, then I grok that</p>



<a name="196210391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210391">(May 04 2020 at 17:04)</a>:</h4>
<p>"manually propagated exceptions"</p>



<a name="196210395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210395">(May 04 2020 at 17:04)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116083">pnkfelix</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196210235" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196210235">said</a>:</p>
<blockquote>
<p>did josh respond to niko's statement that this isn't all that dissimilar from exceptions?</p>
</blockquote>
<p>I didn't respond to that in the meeting. We were short on time, and I didn't want to continue poking at what seemed like the primary point of dispute rather than trying to determine where there was common ground.</p>



<a name="196210420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210420">(May 04 2020 at 17:04)</a>:</h4>
<p>I had a meta question on this topic I wanted to raise</p>



<a name="196210437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210437">(May 04 2020 at 17:04)</a>:</h4>
<p>which is .. what do we see as the most fruitful way to resolve this :)</p>



<a name="196210463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210463">(May 04 2020 at 17:05)</a>:</h4>
<p>I can see a few options</p>



<a name="196210487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210487">(May 04 2020 at 17:05)</a>:</h4>
<p>there's aways the option of just long and detailed conversation, of course,</p>



<a name="196210502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210502">(May 04 2020 at 17:05)</a>:</h4>
<p>but I'm also wondering about things like:</p>



<a name="196210534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210534">(May 04 2020 at 17:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I think there's value in having some discussions, and then doing some writing in shared documents attempting to jointly understand each others' values and work towards them.</p>



<a name="196210543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210543">(May 04 2020 at 17:05)</a>:</h4>
<ul>
<li>writing some sample challenge to be developed with (e.g.) Fehler or perhaps with some forked variant that uses distinct keywords</li>
</ul>



<a name="196210639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210639">(May 04 2020 at 17:06)</a>:</h4>
<ul>
<li>trying to write out a coherent, complete coverage of Rust's error handling story, based on the different keywords</li>
</ul>



<a name="196210830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210830">(May 04 2020 at 17:07)</a>:</h4>
<p>But maybe indeed spending some time drilling more into the motivation of around avoiding connotations (or embracing them) is the obvious first step.</p>



<a name="196210854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210854">(May 04 2020 at 17:07)</a>:</h4>
<p>(I'm going to be in other meetings for a couple of hours, so I'm not going to be able to participate at high bandwidth during that time.)</p>



<a name="196210960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210960">(May 04 2020 at 17:08)</a>:</h4>
<p>my other meta comment is</p>
<ul>
<li>if we're going to pursue this, I think we need to elect who are the folks who are going to drive it to completion, which should probably take part as part of a follow-up meeting on bandwidth and goals</li>
</ul>



<a name="196210987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210987">(May 04 2020 at 17:08)</a>:</h4>
<p>(i'll just mention that the main reason I suggested <code>signal</code> as the keyword was because that as CLU's keyword for exceptions, and CLU, if i recall correctly, had very cheap exceptions.)</p>



<a name="196210993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196210993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196210993">(May 04 2020 at 17:08)</a>:</h4>
<p>and I guess my last meta point</p>
<ul>
<li>somebody should try to write-up the takeaways from that meeting, I might try to do so</li>
</ul>



<a name="196211203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196211203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196211203">(May 04 2020 at 17:10)</a>:</h4>
<p>At the end of the call there was a question of: "Which use cases would we like to enable?" -- I wrote a quick overview for how I would see <code>try</code> / Ok-wrapping interact with Tide: <a href="https://gist.github.com/yoshuawuyts/3a1639767862704541d166c0de476eaf" title="https://gist.github.com/yoshuawuyts/3a1639767862704541d166c0de476eaf">https://gist.github.com/yoshuawuyts/3a1639767862704541d166c0de476eaf</a></p>



<a name="196211675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196211675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196211675">(May 04 2020 at 17:14)</a>:</h4>
<p>(hope this is the kind of example the lang team was looking for)</p>



<a name="196212260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212260">(May 04 2020 at 17:19)</a>:</h4>
<p>ooh, thanks</p>



<a name="196212445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212445">(May 04 2020 at 17:20)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> btw, I think the argument about exceptions is not so much about their perceived <em>runtime cost</em> (although that is no doubt a facet for many people) but also that there is a kind of "zeitgeist" against them. <span class="user-mention" data-user-id="127859">@Taylor Cramer</span> wrote up something quite similar in the comments in the dropbox. So just having exception-like <em>keywords</em> in the language may mislead those who are not well informed on the details. A clear story like "Rust does not have exceptions" is maybe a better selling point for such folks than a muddy story like "Rust has exceptions done right".</p>



<a name="196212507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212507">(May 04 2020 at 17:21)</a>:</h4>
<p>(That said, I personally still favor the exception related terminology, or at least I don't feel I've seen a convincing set of alternative terminology. I think that "X done right" is basically Rust's whole story, in any case.)</p>



<a name="196212555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212555">(May 04 2020 at 17:21)</a>:</h4>
<p>I guess I'll have to review how the "Rust has no GC" vs "Rust has a static GC" selling points were handled.</p>



<a name="196212625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212625">(May 04 2020 at 17:22)</a>:</h4>
<p>yeah, it had a similar ring</p>



<a name="196212639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212639">(May 04 2020 at 17:22)</a>:</h4>
<p>I mean I think if we'd ever successfully adding tracing support etc</p>



<a name="196212646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212646">(May 04 2020 at 17:22)</a>:</h4>
<p>we'd be facing similar questions</p>



<a name="196212653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212653">(May 04 2020 at 17:22)</a>:</h4>
<p>certainly the concerns were raised</p>



<a name="196212655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212655">(May 04 2020 at 17:22)</a>:</h4>
<p>right. And I want to better understand which works better fo which communities</p>



<a name="196212678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212678">(May 04 2020 at 17:23)</a>:</h4>
<p>right now there are some communities that say they won't adopt Rust <em>because</em> it has no GC</p>



<a name="196212694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212694">(May 04 2020 at 17:23)</a>:</h4>
<p>but I don't know if that's a PR issue</p>



<a name="196212715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212715">(May 04 2020 at 17:23)</a>:</h4>
<p>Or a true "lack of expressiveness" one</p>



<a name="196212743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196212743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196212743">(May 04 2020 at 17:23)</a>:</h4>
<p>maybe I should say "individuals" rather than "communities"</p>



<a name="196214008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196214008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196214008">(May 04 2020 at 17:34)</a>:</h4>
<p><span class="user-mention silent" data-user-id="211722">Yoshua Wuyts</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196211203" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196211203">said</a>:</p>
<blockquote>
<p>At the end of the call there was a question of: "Which use cases would we like to enable?" -- I wrote a quick overview for how I would see <code>try</code> / Ok-wrapping interact with Tide: <a href="https://gist.github.com/yoshuawuyts/3a1639767862704541d166c0de476eaf" title="https://gist.github.com/yoshuawuyts/3a1639767862704541d166c0de476eaf">https://gist.github.com/yoshuawuyts/3a1639767862704541d166c0de476eaf</a></p>
</blockquote>
<p>This is nice, <span class="user-mention" data-user-id="211722">@Yoshua Wuyts</span>, thanks. I'm pondering this example <code>async |_| try { .. }</code>. One of the things I've wondered is if we want to support something like <code>try fn foo()</code> or, perhaps instead,</p>
<div class="codehilite"><pre><span></span><code><span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nb">Result</span><span class="o">&lt;..</span><span class="p">.</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="o">..</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>I was struck by some of the parallels there.</p>
<p>I'm curious though about the <code>get</code> signature on <code>app.at().get()</code> -- how constrained is it? In particular, will it hit type inference limitations?</p>



<a name="196214635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196214635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196214635">(May 04 2020 at 17:39)</a>:</h4>
<p>So I summarized <a href="https://paper.dropbox.com/doc/Try-oh-my--AzWHHy50~p4DUrxHGZYxmIw8Ag-yRDursGetP5YcDdOTSebo" title="https://paper.dropbox.com/doc/Try-oh-my--AzWHHy50~p4DUrxHGZYxmIw8Ag-yRDursGetP5YcDdOTSebo">my main takeaways from the meeting</a> -- I'd be curious if anyone sees anything to add there?</p>



<a name="196215039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215039">(May 04 2020 at 17:43)</a>:</h4>
<p>One thing I'm particularly curious about is whether it would make sense to "just stabilize <code>Try</code> trait as is". I'm not the world's biggest fan, but given that we're at least <em>somewhat</em> locked in here... I guess <span class="user-mention" data-user-id="125270">@scottmcm</span> I'd like to get your thoughts on that at some point. (And/or review a proposed alternative design.)</p>



<a name="196215264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215264">(May 04 2020 at 17:45)</a>:</h4>
<p>Can the Try trait be stabilized as is separately from try-blocks and ok-wrapping mechancis?</p>



<a name="196215390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215390">(May 04 2020 at 17:46)</a>:</h4>
<p>If stabilizing the trait as-is means we would always have to write annotations on <code>try</code>, I'd want to try to find alternatives first that would make that not always required.</p>



<a name="196215478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215478">(May 04 2020 at 17:47)</a>:</h4>
<p>awe lame, i missed the meeting</p>



<a name="196215526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215526">(May 04 2020 at 17:47)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> I would have loved to have had your input, personally.</p>



<a name="196215532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215532">(May 04 2020 at 17:47)</a>:</h4>
<p><span aria-label="sob" class="emoji emoji-1f62d" role="img" title="sob">:sob:</span></p>



<a name="196215603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215603">(May 04 2020 at 17:48)</a>:</h4>
<p><span class="user-mention silent" data-user-id="239881">Josh Triplett</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196215390" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196215390">said</a>:</p>
<blockquote>
<p>If stabilizing the trait as-is means we would always have to write annotations on <code>try</code>, I'd want to try to find alternatives first that would make that not always required.</p>
</blockquote>
<p>I think it's not that simple, but there is some connection. To some extent it's "too late", as we already have a non-unique relationship where <code>Result</code> can be converted to non-Result things.</p>



<a name="196215605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215605">(May 04 2020 at 17:48)</a>:</h4>
<p>well, ill check out the recording once its available and write down my thoughts</p>



<a name="196215635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215635">(May 04 2020 at 17:48)</a>:</h4>
<p>This is true; that does constrain our possible solutions.</p>



<a name="196215636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215636">(May 04 2020 at 17:48)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196214635" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196214635">said</a>:</p>
<blockquote>
<p>So I summarized <a href="https://paper.dropbox.com/doc/Try-oh-my--AzWHHy50~p4DUrxHGZYxmIw8Ag-yRDursGetP5YcDdOTSebo" title="https://paper.dropbox.com/doc/Try-oh-my--AzWHHy50~p4DUrxHGZYxmIw8Ag-yRDursGetP5YcDdOTSebo">my main takeaways from the meeting</a> -- I'd be curious if anyone sees anything to add there?</p>
</blockquote>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> see also <span aria-label="point up" class="emoji emoji-1f446" role="img" title="point up">:point_up:</span> :)</p>



<a name="196215787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215787">(May 04 2020 at 17:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I think there's enough value in avoiding annotations that I'd be interested in the family of solutions involving changing the desugar in an edition, if that means that code in a new edition doesn't need as many annotations.</p>



<a name="196215849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215849">(May 04 2020 at 17:50)</a>:</h4>
<p>I do think that shouldn't be done lightly though.</p>



<a name="196215976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196215976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196215976">(May 04 2020 at 17:51)</a>:</h4>
<p>I guess I don't think it's the most reliable sol'n to that problem</p>



<a name="196216669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196216669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196216669">(May 04 2020 at 17:56)</a>:</h4>
<p>/me thinks about use cases for which omitting the annotation seems likely to be relevant.</p>



<a name="196217883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196217883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196217883">(May 04 2020 at 18:06)</a>:</h4>
<p>Personally I'd push for solutions which make writing the type annotation something that is easy and elegant and is nearly always done</p>



<a name="196217896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196217896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196217896">(May 04 2020 at 18:06)</a>:</h4>
<p>or always done</p>



<a name="196217925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196217925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196217925">(May 04 2020 at 18:06)</a>:</h4>
<p>since otherwise there will be a cliff in user experiences when you fall of the "happy path" where inference used to work</p>



<a name="196217973"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196217973" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196217973">(May 04 2020 at 18:07)</a>:</h4>
<p>(of course, you could use that to argue against inference in general, but I think the tradeoffs balance differently here)</p>



<a name="196219625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219625">(May 04 2020 at 18:19)</a>:</h4>
<p>One common use case where I'd like inference to work:<br>
<code>try { ... }.with_context(|| common_context())?;</code></p>



<a name="196219654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219654">(May 04 2020 at 18:19)</a>:</h4>
<p>It'd be nice to not have to tell rustc what type the <code>try</code> is.</p>



<a name="196219671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219671">(May 04 2020 at 18:19)</a>:</h4>
<p>I absolutely understand that'll be hard.</p>



<a name="196219813"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219813" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219813">(May 04 2020 at 18:20)</a>:</h4>
<p>Another use case (which might be better handled other ways, but it's nonetheless not uncommon):<br>
<code>let result = try { ... }; cleanup(); let value = result?; ...</code></p>



<a name="196219824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219824">(May 04 2020 at 18:20)</a>:</h4>
<p><code>try Result&lt;_, Error&gt; { ... }.with_context(|| common_context())?;</code> seems pretty close</p>



<a name="196219860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219860">(May 04 2020 at 18:20)</a>:</h4>
<p>(That might be better handled by having some type whose <code>Drop</code> calls <code>cleanup()</code>, but still...)</p>



<a name="196219867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219867">(May 04 2020 at 18:20)</a>:</h4>
<p><code>try { ... }:Result&lt;_, Error&gt;.with_context(|| common_context())?;</code></p>



<a name="196219890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219890">(May 04 2020 at 18:21)</a>:</h4>
<p><span class="user-mention silent" data-user-id="127859">Taylor Cramer</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196219824" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196219824">said</a>:</p>
<blockquote>
<p><code>try Result&lt;_, Error&gt; { ... }.with_context(|| common_context())?;</code> seems pretty close</p>
</blockquote>
<p>For values of "pretty close" that still feel really painfully verbose.</p>



<a name="196219898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219898">(May 04 2020 at 18:21)</a>:</h4>
<p>also works and aligns with the rest of our type ascription story (well, what we have of one anyways)</p>



<a name="196219926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219926">(May 04 2020 at 18:21)</a>:</h4>
<p>At that point, I'd probably try to write some helper function that forces the type just so I don't have to repeat the type ascription everywhere.</p>



<a name="196219960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196219960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196219960">(May 04 2020 at 18:21)</a>:</h4>
<p>Or a wrapper around <code>try</code>.</p>



<a name="196220060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196220060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196220060">(May 04 2020 at 18:22)</a>:</h4>
<p><code>try_anyhow!{ ... }</code>, translating to <code>try : anyhow::Result&lt;_&gt; { ... }</code> or similar.</p>



<a name="196220086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196220086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196220086">(May 04 2020 at 18:22)</a>:</h4>
<p>I'd like to not have to immediately wrap <code>try</code> in a macro to make it feel usable without repeating myself everywhere.</p>



<a name="196220118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196220118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196220118">(May 04 2020 at 18:22)</a>:</h4>
<p>yeah, that seems plausible and I'd imagine things like that would exist in much the same way that <code>type Result&lt;T&gt; = Result&lt;T, MyError&gt;;</code> is common</p>



<a name="196220138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196220138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196220138">(May 04 2020 at 18:23)</a>:</h4>
<p>(though I personally dislike that pattern of reusing the name <code>Result</code>)</p>



<a name="196220147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196220147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196220147">(May 04 2020 at 18:23)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196214008" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196214008">said</a>:</p>
<blockquote>
<p>I'm curious though about the <code>get</code> signature on <code>app.at().get()</code> -- how constrained is it? In particular, will it hit type inference limitations?</p>
</blockquote>
<p>Good question! I don't know enough about the implementation to gauge whether it will hit limitations, but from a usability perspective I'd argue that it should be a design goal to enable inference to work here.</p>
<p><strong>edit:</strong> Understandably it might not work on the first iteration; but having inference break because the <em>design</em> of <code>try</code> doesn't support it would create a reason not to use <code>try</code>, which seems bad imo.</p>



<a name="196220231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196220231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196220231">(May 04 2020 at 18:23)</a>:</h4>
<p><span class="user-mention silent" data-user-id="127859">Taylor Cramer</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196220138" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196220138">said</a>:</p>
<blockquote>
<p>(though I personally dislike that pattern of reusing the name <code>Result</code>)</p>
</blockquote>
<p>I find <code>anyhow::Result</code> an exception to the usual reasons to dislike that pattern, because it's <em>just</em> a type alias that adds a default for the second type parameter, but you can still write the second type parameter. So if you <code>use anyhow::Result</code> nothing goes wrong with code that used <code>Result&lt;T, E&gt;</code>.</p>



<a name="196220281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196220281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196220281">(May 04 2020 at 18:24)</a>:</h4>
<p>(deleted)</p>



<a name="196220290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196220290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196220290">(May 04 2020 at 18:24)</a>:</h4>
<p>Though I still tend to write <code>anyhow::Result</code> without importing it.</p>



<a name="196221793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196221793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196221793">(May 04 2020 at 18:35)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196214008" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196214008">said</a>:</p>
<blockquote>
<p>This is nice, <span class="user-mention silent" data-user-id="211722">Yoshua Wuyts</span>, thanks. I'm pondering this example <code>async |_| try { .. }</code>. One of the things I've wondered is if we want to support something like <code>try fn foo()</code> or, perhaps instead,</p>
</blockquote>
<div class="codehilite"><pre><span></span><code><span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nb">Result</span><span class="o">&lt;..</span><span class="p">.</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="o">..</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>Ah yes definitely! I wasn't sure if that'd be off-topic here since the meeting didn't quite touch on it -- but it seems to me that stabilizing <code>try</code> would also create some obvious tension with proposals for<code>throws</code> (<code>fn foo() -&gt; throws io::Error {}</code>). I believe towards the end of the meeting it was brought up we should probably consider how all of these pieces could end up working together, which seems like a good idea.</p>



<a name="196221933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196221933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196221933">(May 04 2020 at 18:37)</a>:</h4>
<p><span class="user-mention" data-user-id="211722">@Yoshua Wuyts</span> As far as I know, I don't <em>think</em> <code>try fn</code>/<code>throws</code> would be directly affected, positively or negatively, by stabilizing <code>try</code>, except insofar as doing so allows alternatives like <code>= try {}</code>.</p>



<a name="196222178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222178">(May 04 2020 at 18:39)</a>:</h4>
<p>I was pondering how much alignment is required to move forward with try. There is something .. strange to me about having an "ok-wrapping" form through <code>try</code>, but nothing at the "fn level".</p>



<a name="196222389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222389">(May 04 2020 at 18:40)</a>:</h4>
<p>I guess it's that I think of the idea of <code>?</code> as being aligned to fn scope, and try as being a way to narrow that scope, so it's sort of surprising to me that it has secondary effects.</p>



<a name="196222412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222412">(May 04 2020 at 18:40)</a>:</h4>
<p>I do think there's value in having a function-level Ok-wrapping <code>try</code>, yes.</p>



<a name="196222440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222440">(May 04 2020 at 18:41)</a>:</h4>
<p>As far as I can tell, the primary point of dispute is "what does the type signature look like". :)</p>



<a name="196222487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222487">(May 04 2020 at 18:41)</a>:</h4>
<p>I guess there is also an interaction, and perhaps this was what <span class="user-mention" data-user-id="211722">@Yoshua Wuyts</span> was getting at, between </p>
<div class="codehilite"><pre><span></span><code><span class="k">try</span>: <span class="nb">Result</span><span class="o">&lt;</span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>notation and something like</p>
<div class="codehilite"><pre><span></span><code><span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nb">Result</span><span class="o">&lt;</span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>In other words, if we have built-in type annotation on <code>try</code>, and we added <code>try fn</code>, I would expect them to work analogously.</p>



<a name="196222532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222532">(May 04 2020 at 18:41)</a>:</h4>
<p>/me thinks</p>



<a name="196222545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222545">(May 04 2020 at 18:41)</a>:</h4>
<p>...that's a really interesting argument.</p>



<a name="196222550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222550">(May 04 2020 at 18:42)</a>:</h4>
<p>/me thinks as well.</p>



<a name="196222621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222621">(May 04 2020 at 18:42)</a>:</h4>
<p>heh, yeah that's what I was trying to get at (:</p>



<a name="196222632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222632">(May 04 2020 at 18:42)</a>:</h4>
<p>/me tries to reconcile his "I don't want to write the type annotations on <code>try</code>" with "I very much want to see <code>Result</code> on <code>fn</code>".</p>



<a name="196222659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222659">(May 04 2020 at 18:42)</a>:</h4>
<p>I feel like that's a consistent position, but it's worth thinking about.</p>



<a name="196222697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222697">(May 04 2020 at 18:42)</a>:</h4>
<p>It's generally consistent with "I want type annotations at the function level, but I don't mind inference within functions".</p>



<a name="196222759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222759">(May 04 2020 at 18:43)</a>:</h4>
<p>I think there is another point to consider</p>



<a name="196222801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222801">(May 04 2020 at 18:43)</a>:</h4>
<div class="codehilite"><pre><span></span><code><span class="k">async</span><span class="w"> </span><span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="kt">u32</span> <span class="p">{</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>made the precedent (for strong reasons) that the return type is the "inner type" that the fn body sees</p>



<a name="196222811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222811">(May 04 2020 at 18:43)</a>:</h4>
<p>and the "outer type" that the outside world sees</p>



<a name="196222882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222882">(May 04 2020 at 18:44)</a>:</h4>
<p>/me would actually like to better understand those "strong reasons".</p>



<a name="196222886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222886">(May 04 2020 at 18:44)</a>:</h4>
<p>(this is contrast to e.g. C#, which iirc writes</p>
<div class="codehilite"><pre><span></span><code>async void foo() -&gt; Task&lt;u32&gt;
</code></pre></div>



<a name="196222995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196222995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196222995">(May 04 2020 at 18:44)</a>:</h4>
<p>There are a bunch of reasons, but one very strong one is that the actual type you want is very complex to type in the case of async fn :) -- because of the rules around lifetime capture and <code>impl Future</code> types.</p>



<a name="196223072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196223072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196223072">(May 04 2020 at 18:45)</a>:</h4>
<p>As in, substantially more complex than <code>impl Future&lt;u32&gt;</code>?</p>



<a name="196223147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196223147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196223147">(May 04 2020 at 18:45)</a>:</h4>
<p>(Leaving aside the whole <code>Output=</code> problem, which seems like a quirk of how Future is designed.)</p>



<a name="196223504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196223504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196223504">(May 04 2020 at 18:47)</a>:</h4>
<p>Something that I haven't seen brought up in discussions much, but still think is worth discussing is the option of making <code>fn foo() throws {}</code> use <code>Result&lt;(), Box&lt;dyn std::error::Error + Send + Sync + 'static&gt;&gt;</code> as its return type</p>



<a name="196223676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196223676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196223676">(May 04 2020 at 18:48)</a>:</h4>
<p>Which leans in even further into the error type not being explicit, but would be more comparable erasing <code>Future</code> in the return signature</p>



<a name="196223974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196223974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196223974">(May 04 2020 at 18:50)</a>:</h4>
<p>(the rule being: if an error type is not specified we fall back to a generic "dyn Box Error type", whichever shape that might be)</p>



<a name="196224314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224314">(May 04 2020 at 18:53)</a>:</h4>
<p>seems like using a catch all error type thats default recommended is a hazard</p>



<a name="196224334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224334">(May 04 2020 at 18:53)</a>:</h4>
<p>with specialization it should be able to start impling Error itself I assume</p>



<a name="196224378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224378">(May 04 2020 at 18:53)</a>:</h4>
<p>but for right now <code>Box&lt;dyn Error&gt;</code> doesn't impl error and cant be conveniently wrapped by other types that impl <code>From&lt;E: Error&gt;</code></p>



<a name="196224613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224613">(May 04 2020 at 18:55)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196222487" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196222487">said</a>:</p>
<blockquote>
<p>I guess there is also an interaction, and perhaps this was what <span class="user-mention silent" data-user-id="211722">Yoshua Wuyts</span> was getting at, between </p>
<div class="codehilite"><pre><span></span><code><span class="k">try</span>: <span class="nb">Result</span><span class="o">&lt;</span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>notation and something like</p>
<div class="codehilite"><pre><span></span><code><span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nb">Result</span><span class="o">&lt;</span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>In other words, if we have built-in type annotation on <code>try</code>, and we added <code>try fn</code>, I would expect them to work analogously.</p>
</blockquote>
<p>I feel like the type annotations on <code>try</code> blocks here have a lot in common with the theoretical syntax for <code>try fns</code></p>



<a name="196224633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224633">(May 04 2020 at 18:55)</a>:</h4>
<p>in that it could be ```rust</p>



<a name="196224745"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224745" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224745">(May 04 2020 at 18:56)</a>:</h4>
<div class="codehilite"><pre><span></span><code><span class="k">try</span><span class="w"> </span>-&gt; <span class="kt">u32</span> <span class="nc">throws</span><span class="w"> </span><span class="n">Error</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="o">..</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="196224760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224760">(May 04 2020 at 18:56)</a>:</h4>
<p>you start running into similar issues about "resultness"</p>



<a name="196224812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224812">(May 04 2020 at 18:57)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> not sure I follow that last example? is that both <code>try</code> and <code>throws</code> on the same function?</p>



<a name="196224836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224836">(May 04 2020 at 18:57)</a>:</h4>
<p>or wait, on the same block?</p>



<a name="196224842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224842">(May 04 2020 at 18:57)</a>:</h4>
<p>yea</p>



<a name="196224862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224862">(May 04 2020 at 18:57)</a>:</h4>
<p>in that you have a desire to annotate different levels of the type with try blocks and try fns</p>



<a name="196224894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224894">(May 04 2020 at 18:58)</a>:</h4>
<p>like what kind of Try type would you use with a try level fn and where does it go</p>



<a name="196224946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224946">(May 04 2020 at 18:58)</a>:</h4>
<p>I'm not sure what "level" refers to in this context</p>



<a name="196224958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224958">(May 04 2020 at 18:58)</a>:</h4>
<p>and i feel like if you're going to have a special syntax for type ascription on try blocks you'd want it to mirror the syntax on try functions</p>



<a name="196224972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224972">(May 04 2020 at 18:58)</a>:</h4>
<p>im not proposing that syntax</p>



<a name="196224984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196224984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196224984">(May 04 2020 at 18:58)</a>:</h4>
<p>as in</p>



<a name="196225000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225000">(May 04 2020 at 18:58)</a>:</h4>
<p>specifying the Error type within the Try type</p>



<a name="196225007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225007">(May 04 2020 at 18:58)</a>:</h4>
<p>and specifying the try type itself</p>



<a name="196225053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225053">(May 04 2020 at 18:59)</a>:</h4>
<p>so the proposals you've mentioned in the past like <code>fn foo() -&gt; u32 throws Bar {</code> presumably defaults to a Result</p>



<a name="196225073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225073">(May 04 2020 at 18:59)</a>:</h4>
<p>but how do you set it to something other than a Result?</p>



<a name="196225124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225124">(May 04 2020 at 18:59)</a>:</h4>
<p>ah okay, think I'm following now (:</p>



<a name="196225207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225207">(May 04 2020 at 19:00)</a>:</h4>
<p>and if theres a clean solution there I feel like theres value in applying that same syntax to try blocks</p>



<a name="196225230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225230">(May 04 2020 at 19:00)</a>:</h4>
<p>in that you can only specify the Error type for <code>From</code> type inference</p>



<a name="196225243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225243">(May 04 2020 at 19:00)</a>:</h4>
<p>via <code>throws</code> or <code>yeets</code> or w/e</p>



<a name="196225277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225277">(May 04 2020 at 19:01)</a>:</h4>
<p><span class="user-mention silent" data-user-id="211722">Yoshua Wuyts</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196223974" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196223974">said</a>:</p>
<blockquote>
<p>(the rule being: if an error type is not specified we fall back to a generic "dyn Box Error type", whichever shape that might be)</p>
</blockquote>
<p>That would be privileging a specific generic error type.</p>



<a name="196225400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225400">(May 04 2020 at 19:01)</a>:</h4>
<p><span class="user-mention" data-user-id="239881">@Josh Triplett</span> yes it would, and I think there's a case to be made for that -- but that's a separate but related conversation</p>



<a name="196225665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225665">(May 04 2020 at 19:03)</a>:</h4>
<p>I guess my overarching point is that a lot of error handling seems strongly connected, and I see value in approaching this from a place where we ask which end-user experience we want to provide -- and then working backward to how we can provide that</p>



<a name="196225768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225768">(May 04 2020 at 19:04)</a>:</h4>
<p>I definitely agree with that philosophy.</p>



<a name="196225830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225830">(May 04 2020 at 19:05)</a>:</h4>
<p>I have thoughts on what the end-user experience should look and feel like (both to write and to read), but I absolutely agree that experience should come first.</p>



<a name="196225869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225869">(May 04 2020 at 19:05)</a>:</h4>
<p>Might very well be that <code>throws</code> is not the best outcome for Rust, but I'd love that to be a conscious decision where we have decided it doesn't fit well in the larger picture for error handling rather than as an accident because we happened to go in a different direction.</p>



<a name="196225894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196225894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196225894">(May 04 2020 at 19:05)</a>:</h4>
<p>I'm not convinced that defaulting to box&lt;dyn error&gt; achieves this objective</p>



<a name="196226065"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196226065" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196226065">(May 04 2020 at 19:07)</a>:</h4>
<p>Yeah, to the extent <code>throws</code> seems plausible at all, "less magic" seems more likely to succeed. :)</p>



<a name="196226206"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196226206" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196226206">(May 04 2020 at 19:08)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> heh, yeah didn't necessarily want to advocate that it does here and now -- but wanted to bring it up as an example of something that's been brought up before, and at least seems worth talking about in earnest</p>



<a name="196226241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196226241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196226241">(May 04 2020 at 19:08)</a>:</h4>
<p>I definitely think rust needs to improve its story around "open set errors"</p>



<a name="196226254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196226254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Yoshua Wuyts <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196226254">(May 04 2020 at 19:08)</a>:</h4>
<p>(it's past working hours for me here; going to log off again -- ttyl!)</p>



<a name="196226259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196226259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196226259">(May 04 2020 at 19:08)</a>:</h4>
<p>more specifically handlable ones</p>



<a name="196226362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196226362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196226362">(May 04 2020 at 19:09)</a>:</h4>
<p>o/</p>



<a name="196231574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196231574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196231574">(May 04 2020 at 19:51)</a>:</h4>
<p><span class="user-mention silent" data-user-id="211722">Yoshua Wuyts</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196223504" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196223504">said</a>:</p>
<blockquote>
<p>Something that I haven't seen brought up in discussions much, but still think is worth discussing is the option of making <code>fn foo() throws {}</code> use <code>Result&lt;(), Box&lt;dyn std::error::Error + Send + Sync + 'static&gt;&gt;</code> as its return type</p>
</blockquote>
<p>This would be a sad outcome for <code>core</code>, though I'm not sure how sad.</p>



<a name="196242661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196242661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196242661">(May 04 2020 at 21:32)</a>:</h4>
<p>I think, <span class="user-mention" data-user-id="220273">@Jane Lusby</span>, you were saying the same thing I was trying to say. That I would want to consider any type annotation syntax that one would use at fn level and mirror at the block level.</p>



<a name="196242699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196242699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196242699">(May 04 2020 at 21:33)</a>:</h4>
<p>I also think that a default that is 'the dyn Error type' feels very useful; tbh, I found working with Fehler quite nice in this way. Being able to just annotate functions with <code>#[throws]</code> felt good. I actually even <em>prefer</em> that syntax to <code>-&gt; u32 throws {</code>, which.. reads kind of strangely to me, though I might get used to it.</p>



<a name="196242739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196242739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196242739">(May 04 2020 at 21:33)</a>:</h4>
<p>I was initially concerned about the need to accommodate functions that return <code>Option</code> and the like, but I'm less concerned about that now, it seems like a less common case, and requiring a bit of extra annotation might be ok</p>



<a name="196242822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196242822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196242822">(May 04 2020 at 21:34)</a>:</h4>
<p>In any case, I very much agree that it's a good idea to start from a place of sketching out the end-user experience we're looking for.</p>



<a name="196242923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196242923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196242923">(May 04 2020 at 21:35)</a>:</h4>
<p>This btw is precisely the sort of case I was thinking about when suggesting that we can use procedural macros (and perhaps "core features" that we export in an intentionally odd-ball way) to help drive user-space experimentation and for all of us to gain a better feel of what it's like to use features in practice, versus arguing from theory. (In my ideal world, we'd even run some limited experiments of teaching folks to use different systems...)</p>



<a name="196243010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196243010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196243010">(May 04 2020 at 21:36)</a>:</h4>
<p>In this case, we may not need much beyond what Fehler already provides, I suppose, though I think that plausibly a "core version" of try blocks might help -- maybe just the ability to break-with-value</p>



<a name="196381233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196381233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rpjohnst <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196381233">(May 05 2020 at 23:32)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196242661" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196242661">said</a>:</p>
<blockquote>
<p>I think, <span class="user-mention silent" data-user-id="220273">Jane Lusby</span>, you were saying the same thing I was trying to say. That I would want to consider any type annotation syntax that one would use at fn level and mirror at the block level.</p>
</blockquote>
<p>This line of thinking suggests to me that there might be some useful parallels with closures- those also default to no annotation but allow you to specify a return type with <code>-&gt;</code>, which is also the same as the one you use at fn level. Maybe there are some common patterns people have found for using <code>?</code> in closures?</p>



<a name="196381278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196381278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rpjohnst <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196381278">(May 05 2020 at 23:33)</a>:</h4>
<p>(Closures would also presumably inherit any sort of fn decl syntax for <code>throws</code>/<code>try</code>/whatever else?)</p>



<a name="196622795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196622795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196622795">(May 06 2020 at 11:55)</a>:</h4>
<p>I very rarely get to use <code>?</code> in closures because the majority of closures I write don't get to return result - e.g. in iterator adapters. Most of the time that means rewriting as a for loop or so.</p>



<a name="196640191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196640191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196640191">(May 06 2020 at 14:13)</a>:</h4>
<p>sigh, so true</p>



<a name="196657356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196657356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196657356">(May 06 2020 at 16:07)</a>:</h4>
<p>Yeah, same problem here. I wanted to be able to use <code>.unwrap_or_else</code> on an Option, but the closure needed to use <code>?</code>, so I had to write an explicit match.</p>



<a name="196778633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/196778633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#196778633">(May 07 2020 at 14:30)</a>:</h4>
<p>So, I'd like to post the meeting video and some notes -- I'm wondering if folks agree with my <a href="https://paper.dropbox.com/doc/Try-oh-my--AzWHHy50~p4DUrxHGZYxmIw8Ag-yRDursGetP5YcDdOTSebo" title="https://paper.dropbox.com/doc/Try-oh-my--AzWHHy50~p4DUrxHGZYxmIw8Ag-yRDursGetP5YcDdOTSebo">takeaways</a> -- I guess I'll reskim the comments here, but I don't feel like they had any missing notes.</p>



<a name="197008235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197008235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197008235">(May 09 2020 at 19:28)</a>:</h4>
<p><span class="user-mention silent" data-user-id="239881">Josh Triplett</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196657356" title="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/196657356">said</a>:</p>
<blockquote>
<p>Yeah, same problem here. I wanted to be able to use <code>.unwrap_or_else</code> on an Option, but the closure needed to use <code>?</code>, so I had to write an explicit match.</p>
</blockquote>
<p>I really wish we just had <code>opt ☃ "hello".to_string()</code> instead of <code>opt.unwrap_or_else(|| "hello".to_string())</code>.  Then it wouldn't have all the closure barriers, so it could <code>?</code>, <code>return</code>, <code>yeet</code>, ...</p>



<a name="197008432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197008432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197008432">(May 09 2020 at 19:31)</a>:</h4>
<p>I was just writing a table that was similar to this:</p>
<div class="codehilite"><pre><span></span><code><span class="o">||</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="k">async</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="k">try</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="k">const</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>So the closure made me think about <code>try -&gt; TypeHere { 4 }</code> as ascription syntax for <code>try</code>.  Dunno if that's a good idea, or a terrible one because of the return-type-sugar conversations.</p>



<a name="197207755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197207755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197207755">(May 11 2020 at 21:37)</a>:</h4>
<p>I'm personally a fan (of the <code>-&gt; Ty</code> syntax)</p>



<a name="197207869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197207869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197207869">(May 11 2020 at 21:38)</a>:</h4>
<p>but I also vaguely want it to match the type ascription syntax</p>



<a name="197207900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197207900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197207900">(May 11 2020 at 21:38)</a>:</h4>
<p>(which could also be <code>-&gt;</code>, but I know there has been controversy over this)</p>



<a name="197208250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197208250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197208250">(May 11 2020 at 21:42)</a>:</h4>
<p>I would say that <code>-&gt;</code> is not a bad idea, but I would expect that if we permitted</p>
<div class="codehilite"><pre><span></span><code><span class="k">try</span><span class="w"> </span><span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nc">T</span><span class="w"></span>
</code></pre></div>


<p>and</p>
<div class="codehilite"><pre><span></span><code><span class="k">try</span><span class="w"> </span>-&gt; <span class="nc">T</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>that the meaning of those <code>T</code> types ought to match, right?</p>



<a name="197457459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197457459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197457459">(May 13 2020 at 18:39)</a>:</h4>
<p>Agreed, niko.  That's what worried me about it, because it implies solving <code>try -&gt; u64 throws io::Error</code> or similar as part of the try block itself, which would be nice to avoid, since the ok type isn't the interesting part of the ascription for the block.</p>



<a name="197457797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197457797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197457797">(May 13 2020 at 18:41)</a>:</h4>
<p>So (assuming for this post that we want that sugar) I'd probably end up writing something more like <code>try -&gt; _ throws anyhow::Error</code> most often, which seems a bit odd to me for some reason.</p>



<a name="197458107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197458107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197458107">(May 13 2020 at 18:44)</a>:</h4>
<p>Unbaked musing: maybe a syntax that doesn't require mentioning the ok type at all, since that's better specified in the body or via context anyway?  Strawman <code>try ☃ std::io::Result { ... }</code>, where you pass a generic type with one parameter?  (<code>☃</code> could be <code>in</code> or something, but that's not important.)</p>



<a name="197460186"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197460186" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sebastian Malton <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197460186">(May 13 2020 at 19:00)</a>:</h4>
<p>I think that it would also be nice if in the simple case, where all the <code>Err</code> types in a <code>try { ... }</code> are exactly the same, such a decl would not be needed</p>



<a name="197484885"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197484885" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197484885">(May 13 2020 at 22:24)</a>:</h4>
<p>Agreed, <span class="user-mention" data-user-id="247082">@Sebastian Malton</span> -- that was one of the things on the wishlist for discussion in the meeting.  </p>
<p>It's challenging because the <code>From::from</code> is currently part of the <code>?</code>.  The simplest fix I could think of would be to have <code>try { (a?, b?) } </code> be different from <code>try ☃ SomeType { (a?, b?) }</code> (so that the former wouldn't do error- or carrier-conversion), but that implies that <code>try ☃ _ { ... }</code> and <code>try { ... }</code> would be different, which also seems suboptimal.</p>



<a name="197485609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197485609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sebastian Malton <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197485609">(May 13 2020 at 22:32)</a>:</h4>
<p>Maybe, though I don't think that suboptimal. Especially since we are talking about type ascription in the first place, leaving it as <code>_</code> in <code>try ☃ _</code> seems like it would never work anyway.</p>



<a name="197485717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197485717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197485717">(May 13 2020 at 22:33)</a>:</h4>
<p>Hmm, that's an interesting observation <span aria-label="thumbs up" class="emoji emoji-1f44d" role="img" title="thumbs up">:thumbs_up:</span></p>



<a name="197713718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197713718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197713718">(May 15 2020 at 16:04)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125270">scottmcm</span> <a href="#narrow/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!/near/197457797">said</a>:</p>
<blockquote>
<p>So (assuming for this post that we want that sugar) I'd probably end up writing something more like <code>try -&gt; _ throws anyhow::Error</code> most often, which seems a bit odd to me for some reason.</p>
</blockquote>
<p>imo what this argues for is</p>
<ol>
<li>anyhow should move into libstd, let's say as <code>std::error::Any</code></li>
<li><code>throws std::error::Any</code> (or whatever) would be the default</li>
</ol>



<a name="197713838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197713838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197713838">(May 15 2020 at 16:05)</a>:</h4>
<p>I would also say that <em>even if</em> we don't use <code>-&gt;</code> notation, it would seem best for <code>try fn</code> (should it exist) and type ascription on <code>try</code> to line up</p>



<a name="197713865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197713865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197713865">(May 15 2020 at 16:05)</a>:</h4>
<p>I feel like we need to go over this thread and do a write-up with key points etc</p>



<a name="197715135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197715135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197715135">(May 15 2020 at 16:15)</a>:</h4>
<p>What does <code>core</code> do though?</p>



<a name="197715229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197715229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197715229">(May 15 2020 at 16:16)</a>:</h4>
<p>idk we have to figure it out :)</p>



<a name="197715275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197715275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197715275">(May 15 2020 at 16:16)</a>:</h4>
<p>maybe if you opt out from libstd you have to specify your error type yourself</p>



<a name="197717809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197717809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197717809">(May 15 2020 at 16:34)</a>:</h4>
<p>(deleted)</p>



<a name="197724202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197724202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197724202">(May 15 2020 at 17:21)</a>:</h4>
<p>Not to bikeshed, but we shouldn't call it <code>Any</code>, because we have something by that name already.</p>



<a name="197726540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197726540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197726540">(May 15 2020 at 17:40)</a>:</h4>
<p>(did that stop us with <code>io::Result</code> ... <span aria-label="wink" class="emoji emoji-1f609" role="img" title="wink">:wink:</span> )</p>



<a name="197727754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197727754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197727754">(May 15 2020 at 17:49)</a>:</h4>
<p>I am going to do the bit where I say I think we should call it Report</p>



<a name="197754699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197754699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197754699">(May 15 2020 at 21:28)</a>:</h4>
<p>indeed we can't call it any, I know</p>



<a name="197755039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197755039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197755039">(May 15 2020 at 21:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> I've experienced a great deal of pain caused by <code>std::fmt::Write</code> and <code>std::io::Write</code>.</p>



<a name="197755358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197755358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197755358">(May 15 2020 at 21:36)</a>:</h4>
<p>gotta write the right Write, right?</p>



<a name="197756708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/197756708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#197756708">(May 15 2020 at 21:53)</a>:</h4>
<p>I think that the best thing for the long term health of Rust is for code to be as <code>no_std</code> as possible as often as possible "by default".</p>
<p>So any solution which is, uh, "inclined" (to pick as neutral a term as possible) against giving a smooth <code>no_std</code> experience is a bad path for the language to take.</p>



<a name="207981538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/207981538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matt rice <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#207981538">(Aug 25 2020 at 15:57)</a>:</h4>
<p>Hate to ask, but i'd looked and didn't see this meeting posted, I guess at least there is the notes!</p>



<a name="208022280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/208022280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#208022280">(Aug 25 2020 at 20:55)</a>:</h4>
<p>I think it was recorded. <span class="user-mention" data-user-id="116009">@nikomatsakis</span> ?</p>



<a name="208114004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Design%20meeting%3A%20try%2C%20oh%20my%21/near/208114004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Design.20meeting.3A.20try.2C.20oh.20my!.html#208114004">(Aug 26 2020 at 16:20)</a>:</h4>
<p>Hmm, I think so, I can look back through recordings</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>